const { contextBridge, ipcRenderer } = require('electron');

// 向渲染进程暴露安全的API
contextBridge.exposeInMainWorld('electronAPI', {
  // 文件选择对话框
  openFileDialog: options => ipcRenderer.invoke('open-file-dialog', options),
  // 目录选择对话框
  openDirectoryDialog: options => ipcRenderer.invoke('open-directory-dialog', options),
  // 保存文件对话框
  saveFileDialog: options => ipcRenderer.invoke('save-file-dialog', options),
  // 提取视频帧
  extractFrames: config => ipcRenderer.invoke('extract-frames', config),
  // 图片转GIF
  imagesToGif: config => ipcRenderer.invoke('images-to-gif', config),
  // 图片转PDF
  createPdf: config => ipcRenderer.invoke('create-pdf', config),
  // SVG裁剪
  trimSvg: config => ipcRenderer.invoke('trim-svg', config),
  // 图像缩放
  resizeImages: config => ipcRenderer.invoke('resize-images', config),
  // HAR图片提取
  parseHarFile: config => ipcRenderer.invoke('parse-har-file', config),
  // 目录批量重命名
  batchRenameDirectories: baseDir => ipcRenderer.invoke('batch-rename-directories', baseDir),
  // 压缩目录
  compressZip: config => ipcRenderer.invoke('compress-zip', config),
  // PDF转图片
  pdfToImages: config => ipcRenderer.invoke('pdf-to-images', config),
  // 进度更新事件
  onProgressUpdate: callback => ipcRenderer.on('progress-update', (event, progress) => callback(progress)),
  // 移除事件监听器
  removeProgressListener: () => ipcRenderer.removeAllListeners('progress-update')
});